package com.ntschy.sys.service;

import com.ntschy.common.core.entity.dataobject.SysConfig;

import java.util.List;

public interface ISysConfigService {

    // * ================================================基础增删改查BEGIN============================================= *
    /**
     * 获取配置列表
     * 当前查询条件：配置名称 ｜ 配置Key
     * @param config 配置对象
     * @return 配置列表
     */
    List<SysConfig> pageConfig(SysConfig config);

    /**
     * 新增系统配置
     * @param config 配置对象
     * @return 新增结果
     */
    int addConfig(SysConfig config);

    /**
     * 更新系统配置
     * @param config 系统配置对象
     * @return 更新结果
     */
    int updateConfig(SysConfig config);

    /**
     * 根据id删除系统配置
     * @param id 配置id
     * @return 删除结果
     */
    int deleteConfig(String id);

    /**
     * 查询系统配置具体信息
     * @param id 系统配置id
     * @return 查询结果
     */
    SysConfig fetchConfig(String id);

    /**
     * 根据配置键查询系统配置具体信息
     * @param key 系统配置键
     * @return 查询结果
     */
    SysConfig fetchConfigByKey(String key);

    // * =================================================基础增删改查END============================================== *

    /**
     * 校验配置名称是否存在
     * @param configName 配置名称
     * @return 校验结果
     */
    SysConfig checkConfigNameExist(String configName);


    /**
     * 校验配置键是否存在
     * @param configKey 配置键
     * @return 校验结果
     */
    SysConfig checkConfigKeyExist(String configKey);
}
